[INFO] cloning repository https://github.com/bedwards/copper-hollow
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bedwards/copper-hollow" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbedwards%2Fcopper-hollow", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbedwards%2Fcopper-hollow'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 42f2639d1ae40d0382219d9422564359e4cdf891
[INFO] testing bedwards/copper-hollow against try#b8e88e5ddf5521a9f43ee3f62a702388c713e4bb for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbedwards%2Fcopper-hollow" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/bedwards/copper-hollow
[INFO] finished tweaking git repo https://github.com/bedwards/copper-hollow
[INFO] tweaked toml for git repo https://github.com/bedwards/copper-hollow written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/bedwards/copper-hollow on toolchain b8e88e5ddf5521a9f43ee3f62a702388c713e4bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/bedwards/copper-hollow already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded pin-project-lite v0.2.17
[INFO] [stderr]   Downloaded tokio-macros v2.6.1
[INFO] [stderr]   Downloaded socket2 v0.6.3
[INFO] [stderr]   Downloaded rand_chacha v0.10.0
[INFO] [stderr]   Downloaded cpufeatures v0.3.0
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded chacha20 v0.10.0
[INFO] [stderr]   Downloaded midly v0.5.3
[INFO] [stderr]   Downloaded r-efi v6.0.0
[INFO] [stderr]   Downloaded getrandom v0.4.2
[INFO] [stderr]   Downloaded clap v4.5.60
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.42
[INFO] [stderr]   Downloaded rand v0.10.0
[INFO] [stderr]   Downloaded clap_builder v4.5.60
[INFO] [stderr]   Downloaded zerocopy v0.8.42
[INFO] [stderr]   Downloaded tokio v1.50.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a702782c496910c53cb1dcdff5fa99666a36d10e71f3e80b961597ee4a87225a
[INFO] running `Command { std: "docker" "start" "-a" "a702782c496910c53cb1dcdff5fa99666a36d10e71f3e80b961597ee4a87225a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a702782c496910c53cb1dcdff5fa99666a36d10e71f3e80b961597ee4a87225a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a702782c496910c53cb1dcdff5fa99666a36d10e71f3e80b961597ee4a87225a", kill_on_drop: false }`
[INFO] [stdout] a702782c496910c53cb1dcdff5fa99666a36d10e71f3e80b961597ee4a87225a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f6fba89ca4e91e76464df44577072c4a3d1aaacfd26f8b91b90ffd3c152249b8
[INFO] running `Command { std: "docker" "start" "-a" "f6fba89ca4e91e76464df44577072c4a3d1aaacfd26f8b91b90ffd3c152249b8", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling midly v0.5.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.10.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling copper-hollow v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.54s
[INFO] running `Command { std: "docker" "inspect" "f6fba89ca4e91e76464df44577072c4a3d1aaacfd26f8b91b90ffd3c152249b8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f6fba89ca4e91e76464df44577072c4a3d1aaacfd26f8b91b90ffd3c152249b8", kill_on_drop: false }`
[INFO] [stdout] f6fba89ca4e91e76464df44577072c4a3d1aaacfd26f8b91b90ffd3c152249b8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4bdd5366b08a24297bdd778ee8832c4b6e36a83754466475adde81cfa5ad2ca8
[INFO] running `Command { std: "docker" "start" "-a" "4bdd5366b08a24297bdd778ee8832c4b6e36a83754466475adde81cfa5ad2ca8", kill_on_drop: false }`
[INFO] [stderr]    Compiling copper-hollow v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.88s
[INFO] running `Command { std: "docker" "inspect" "4bdd5366b08a24297bdd778ee8832c4b6e36a83754466475adde81cfa5ad2ca8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4bdd5366b08a24297bdd778ee8832c4b6e36a83754466475adde81cfa5ad2ca8", kill_on_drop: false }`
[INFO] [stdout] 4bdd5366b08a24297bdd778ee8832c4b6e36a83754466475adde81cfa5ad2ca8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 687f48a4ba95f1d7db7357f8aee5e6bdd62a118ae49ecf99a7cff5b46520de41
[INFO] running `Command { std: "docker" "start" "-a" "687f48a4ba95f1d7db7357f8aee5e6bdd62a118ae49ecf99a7cff5b46520de41", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/copper_hollow-a5c2be480a407708)
[INFO] [stdout] 
[INFO] [stdout] running 312 tests
[INFO] [stdout] test cli::commands::tests::get_song_returns_song_data ... ok
[INFO] [stdout] test cli::commands::tests::get_pattern_invalid_part_returns_error ... ok
[INFO] [stdout] test cli::commands::tests::get_pattern_track_out_of_range_returns_error ... ok
[INFO] [stdout] test cli::commands::tests::get_pattern_returns_empty_pattern ... ok
[INFO] [stdout] test cli::commands::tests::get_song_structure_matches_default ... ok
[INFO] [stdout] test cli::commands::tests::get_state_respects_seed_arg ... ok
[INFO] [stdout] test cli::commands::tests::get_state_returns_valid_state ... ok
[INFO] [stdout] test cli::commands::tests::get_track_out_of_range_returns_error ... ok
[INFO] [stdout] test cli::commands::tests::list_parts_returns_all_variants ... ok
[INFO] [stdout] test cli::commands::tests::get_track_returns_correct_index ... ok
[INFO] [stdout] test cli::commands::tests::list_progressions_invalid_part_returns_error ... ok
[INFO] [stdout] test cli::commands::tests::list_progressions_returns_bridge_progression ... ok
[INFO] [stdout] test cli::commands::tests::list_instruments_returns_all_variants ... ok
[INFO] [stdout] test cli::commands::tests::get_track_returns_track_data ... ok
[INFO] [stdout] test cli::commands::tests::list_progressions_returns_verse_progression ... ok
[INFO] [stdout] test cli::commands::tests::list_scales_returns_all_variants ... ok
[INFO] [stdout] test cli::commands::tests::unimplemented_command_returns_stub ... ok
[INFO] [stdout] test cli::commands::tests::list_strum_patterns_returns_default ... ok
[INFO] [stdout] test cli::tests::parse_export_midi ... ok
[INFO] [stdout] test cli::tests::parse_get_state ... ok
[INFO] [stdout] test cli::tests::parse_global_options ... ok
[INFO] [stdout] test cli::tests::parse_get_track ... ok
[INFO] [stdout] test cli::tests::parse_no_args_is_gui_mode ... ok
[INFO] [stdout] test cli::tests::parse_list_progressions ... ok
[INFO] [stdout] test cli::tests::parse_get_pattern ... ok
[INFO] [stdout] test cli::tests::parse_set_tempo ... ok
[INFO] [stdout] test engine::arrangement::tests::apply_velocity_boosts_adds_5 ... ok
[INFO] [stdout] test engine::arrangement::tests::chord_at_bar_out_of_range_returns_none ... ok
[INFO] [stdout] test engine::arrangement::tests::chord_at_bar_returns_correct_chord ... ok
[INFO] [stdout] test engine::arrangement::tests::chord_roots_match_bb_major_scale ... ok
[INFO] [stdout] test engine::arrangement::tests::chord_qualities_match_diatonic_table ... ok
[INFO] [stdout] test engine::arrangement::tests::crash_on_every_chorus ... ok
[INFO] [stdout] test engine::arrangement::tests::dynamics_multipliers_match_spec ... ok
[INFO] [stdout] test engine::arrangement::tests::crash_note_is_gm_crash ... ok
[INFO] [stdout] test engine::arrangement::tests::arrangement_plan_serde_roundtrip ... ok
[INFO] [stdout] test engine::arrangement::tests::empty_structure_produces_empty_plan ... ok
[INFO] [stdout] test engine::arrangement::tests::chords_resolve_correctly_for_bb_major ... ok
[INFO] [stdout] test engine::arrangement::tests::occurrence_indices_track_repeats ... ok
[INFO] [stdout] test engine::arrangement::tests::hi_hat_open_before_transitions ... ok
[INFO] [stdout] test engine::arrangement::tests::crash_on_bridge_when_drums_active ... ok
[INFO] [stdout] test engine::arrangement::tests::plan_has_correct_section_count ... ok
[INFO] [stdout] test engine::arrangement::tests::plan_total_bars_matches_song ... ok
[INFO] [stdout] test engine::arrangement::tests::same_seed_produces_identical_plan ... ok
[INFO] [stdout] test engine::arrangement::tests::section_at_tick_past_end_returns_none ... ok
[INFO] [stdout] test cli::tests::parse_randomize_with_flags ... ok
[INFO] [stdout] test engine::arrangement::tests::section_instance_serde_roundtrip ... ok
[INFO] [stdout] test engine::arrangement::tests::section_seed_deterministic ... ok
[INFO] [stdout] test engine::arrangement::tests::transition_kind_serde_roundtrip ... ok
[INFO] [stdout] test engine::arrangement::tests::sections_have_correct_tick_ranges ... ok
[INFO] [stdout] test engine::arrangement::tests::section_at_tick_finds_correct_section ... ok
[INFO] [stdout] test engine::arrangement::tests::seed_offsets_differ_for_repeated_parts ... ok
[INFO] [stdout] test engine::arrangement::tests::sections_have_correct_bar_counts ... ok
[INFO] [stdout] test engine::arrangement::tests::velocity_boost_at_every_section ... ok
[INFO] [stdout] test engine::arrangement::tests::transitions_sorted_by_tick ... ok
[INFO] [stdout] test engine::arrangement::tests::velocity_boost_caps_at_127 ... ok
[INFO] [stdout] test engine::arrangement::tests::verse_progression_resolves_i_v_vi_iv ... ok
[INFO] [stdout] test engine::bass::tests::approach_note_is_near_target ... ok
[INFO] [stdout] test engine::bass::tests::bass_produces_events ... ok
[INFO] [stdout] test engine::bass::tests::bass_events_sorted_by_tick ... ok
[INFO] [stdout] test engine::bass::tests::bass_style_serde_roundtrip ... ok
[INFO] [stdout] test engine::bass::tests::closest_note_for_pc_returns_none_when_not_in_range ... ok
[INFO] [stdout] test engine::bass::tests::bass_narrow_range_produces_correct_pitch_classes ... ok
[INFO] [stdout] test engine::bass::tests::ghost_notes_are_quiet_and_short ... ok
[INFO] [stdout] test engine::bass::tests::empty_chords_produces_empty_pattern ... ok
[INFO] [stdout] test engine::bass::tests::octave_pattern_uses_root_and_octave ... ok
[INFO] [stdout] test engine::bass::tests::resolve_note_for_pc_prefers_in_range_when_available ... ok
[INFO] [stdout] test engine::bass::tests::resolve_note_for_pc_expands_search_when_not_in_range ... ok
[INFO] [stdout] test engine::bass::tests::different_seeds_produce_different_bass ... ok
[INFO] [stdout] test engine::bass::tests::bass_notes_within_range ... ok
[INFO] [stdout] test engine::bass::tests::voice_leading_chooses_closest_voicing ... ok
[INFO] [stdout] test engine::bass::tests::walking_across_progression ... ok
[INFO] [stdout] test engine::bass::tests::pedal_stays_on_one_note ... ok
[INFO] [stdout] test engine::bass::tests::pitch_table_bass_range ... ok
[INFO] [stdout] test engine::bass::tests::same_seed_produces_identical_bass ... ok
[INFO] [stdout] test engine::bass::tests::style_for_part ... ok
[INFO] [stdout] test engine::bass::tests::root_fifth_starts_on_root ... ok
[INFO] [stdout] test engine::bass::tests::walking_has_four_notes_per_bar ... ok
[INFO] [stdout] test engine::composer::tests::chord_voicing_max_six_notes ... ok
[INFO] [stdout] test engine::composer::tests::chord_voicing_within_instrument_range ... ok
[INFO] [stdout] test engine::bass::tests::walking_beat1_is_chord_root ... ok
[INFO] [stdout] test engine::composer::tests::composer_config_serde_roundtrip ... ok
[INFO] [stdout] test engine::composer::tests::composer_serde_roundtrip ... ok
[INFO] [stdout] test cli::commands::tests::compose_respects_seed_arg ... ok
[INFO] [stdout] test engine::composer::tests::find_lead_seed_falls_back_when_no_lead_active ... ok
[INFO] [stdout] test engine::composer::tests::find_lead_seed_skips_inactive_lead_melody_tracks ... ok
[INFO] [stdout] test engine::composer::tests::find_lead_seed_varies_by_section_activity ... ok
[INFO] [stdout] test engine::composer::tests::all_tracks_use_consistent_chord_progression ... ok
[INFO] [stdout] test cli::commands::tests::export_midi_creates_file ... ok
[INFO] [stdout] test engine::composer::tests::merge_pattern_combines_events ... ok
[INFO] [stdout] test engine::composer::tests::offset_pattern_shifts_ticks ... ok
[INFO] [stdout] test cli::commands::tests::export_midi_invalid_path_returns_error ... ok
[INFO] [stdout] test engine::composer::tests::crash_cymbals_present_at_chorus ... ok
[INFO] [stdout] test engine::composer::tests::active_tracks_have_patterns ... ok
[INFO] [stdout] test engine::composer::tests::track_section_seed_varies_by_occurrence ... ok
[INFO] [stdout] test engine::composer::tests::drum_tracks_have_events ... ok
[INFO] [stdout] test engine::composer::tests::track_section_seed_varies_by_track ... ok
[INFO] [stdout] test engine::drums::tests::all_velocities_in_valid_range ... ok
[INFO] [stdout] test engine::composer::tests::bass_track_has_events ... ok
[INFO] [stdout] test engine::drums::tests::bridge_kick_only_beat_1 ... ok
[INFO] [stdout] test engine::drums::tests::all_parts_produce_non_empty_patterns ... ok
[INFO] [stdout] test engine::drums::tests::bridge_uses_rimshot ... ok
[INFO] [stdout] test engine::drums::tests::bridge_determinism ... ok
[INFO] [stdout] test engine::drums::tests::chorus_has_crash_on_first_bar ... ok
[INFO] [stdout] test engine::drums::tests::chorus_has_cowbell_on_even_bars ... ok
[INFO] [stdout] test engine::drums::tests::chorus_snare_has_ghost_notes ... ok
[INFO] [stdout] test engine::drums::tests::different_seeds_produce_different_drum_patterns ... ok
[INFO] [stdout] test engine::drums::tests::drum_config_serde_roundtrip ... ok
[INFO] [stdout] test engine::drums::tests::drum_humanize_serde_roundtrip ... ok
[INFO] [stdout] test engine::drums::tests::empty_bars_produces_empty_pattern ... ok
[INFO] [stdout] test engine::drums::tests::drum_intensity_values ... ok
[INFO] [stdout] test engine::drums::tests::events_sorted_by_tick ... ok
[INFO] [stdout] test engine::drums::tests::ghost_detection_uses_velocity_threshold ... ok
[INFO] [stdout] test engine::drums::tests::hihat_mode_serde_roundtrip ... ok
[INFO] [stdout] test engine::drums::tests::humanize_large_tick_no_overflow ... ok
[INFO] [stdout] test engine::drums::tests::chorus_determinism ... ok
[INFO] [stdout] test engine::drums::tests::humanize_params_per_instrument ... ok
[INFO] [stdout] test engine::drums::tests::humanize_tick_zero_no_underflow ... ok
[INFO] [stdout] test engine::drums::tests::intro_velocities_lower_than_chorus ... ok
[INFO] [stdout] test engine::drums::tests::ghost_snare_gets_looser_timing_than_regular ... ok
[INFO] [stdout] test engine::drums::tests::non_snare_instruments_ignore_ghost_detection ... ok
[INFO] [stdout] test engine::drums::tests::pattern_bar_count_and_ticks ... ok
[INFO] [stdout] test engine::drums::tests::verse_has_no_tambourine_or_shaker ... ok
[INFO] [stdout] test engine::drums::tests::verse_has_kick_snare_hihat ... ok
[INFO] [stdout] test engine::drums::tests::verse_hihat_eighth_notes ... ok
[INFO] [stdout] test engine::drums::tests::verse_snare_backbeat ... ok
[INFO] [stdout] test engine::melody::tests::contour_all_has_five_variants ... ok
[INFO] [stdout] test engine::melody::tests::contour_arch_peaks_at_midpoint ... ok
[INFO] [stdout] test engine::melody::tests::contour_ascending_goes_up ... ok
[INFO] [stdout] test engine::melody::tests::contour_descending_goes_down ... ok
[INFO] [stdout] test engine::drums::tests::verse_kick_on_beats_1_and_3 ... ok
[INFO] [stdout] test engine::melody::tests::contour_shape_serde_roundtrip ... ok
[INFO] [stdout] test engine::melody::tests::contour_static_stays_narrow ... ok
[INFO] [stdout] test engine::melody::tests::counter_melody_is_sparser_than_lead ... ok
[INFO] [stdout] test engine::melody::tests::counter_melody_determinism ... ok
[INFO] [stdout] test engine::melody::tests::density_for_part ... ok
[INFO] [stdout] test engine::drums::tests::same_seed_produces_identical_drum_pattern ... ok
[INFO] [stdout] test engine::melody::tests::density_note_ranges ... ok
[INFO] [stdout] test engine::melody::tests::empty_chords_produces_empty_pattern ... ok
[INFO] [stdout] test engine::melody::tests::different_seeds_produce_different_melodies ... ok
[INFO] [stdout] test engine::melody::tests::melody_density_serde_roundtrip ... ok
[INFO] [stdout] test engine::melody::tests::melody_events_sorted_by_tick ... ok
[INFO] [stdout] test engine::melody::tests::melody_notes_within_range ... ok
[INFO] [stdout] test engine::melody::tests::motion_type_serde_roundtrip ... ok
[INFO] [stdout] test engine::melody::tests::pitch_table_c_major ... ok
[INFO] [stdout] test engine::melody::tests::melody_produces_events ... ok
[INFO] [stdout] test engine::melody::tests::pitch_table_empty_when_no_scale_tones_in_range ... ok
[INFO] [stdout] test engine::melody::tests::large_leap_produces_only_fourth_fifth_or_octave ... ok
[INFO] [stdout] test engine::melody::tests::same_seed_produces_identical_melody ... ok
[INFO] [stdout] test engine::melody::tests::strong_beats_prefer_chord_tones ... ok
[INFO] [stdout] test engine::pads::tests::close_voicing_impossible_range_returns_empty ... ok
[INFO] [stdout] test engine::pads::tests::close_voicing_contains_chord_tones ... ok
[INFO] [stdout] test engine::pads::tests::close_voicing_out_of_range_root_returns_valid_notes ... ok
[INFO] [stdout] test engine::melody::tests::step_motion_dominates ... ok
[INFO] [stdout] test engine::pads::tests::drop2_voicing_contains_chord_tones ... ok
[INFO] [stdout] test engine::pads::tests::different_seeds_produce_different_pads ... ok
[INFO] [stdout] test engine::pads::tests::empty_chords_produces_empty_pattern ... ok
[INFO] [stdout] test engine::pads::tests::drop2_voicing_wider_than_close ... ok
[INFO] [stdout] test engine::pads::tests::open_voicing_contains_chord_tones ... ok
[INFO] [stdout] test engine::pads::tests::close_voicing_within_octave ... ok
[INFO] [stdout] test engine::pads::tests::open_voicing_impossible_range_returns_empty ... ok
[INFO] [stdout] test engine::pads::tests::open_voicing_out_of_range_root_returns_valid_notes ... ok
[INFO] [stdout] test engine::pads::tests::pad_events_sorted_by_tick ... ok
[INFO] [stdout] test engine::pads::tests::pad_notes_within_range ... ok
[INFO] [stdout] test engine::pads::tests::open_voicing_produces_wider_spread_than_close ... ok
[INFO] [stdout] test engine::pads::tests::pad_produces_events ... ok
[INFO] [stdout] test engine::pads::tests::pad_sustained_durations ... ok
[INFO] [stdout] test engine::pads::tests::same_seed_produces_identical_pads ... ok
[INFO] [stdout] test engine::pads::tests::voice_leading_across_progression ... ok
[INFO] [stdout] test engine::pads::tests::single_bar_produces_events ... ok
[INFO] [stdout] test engine::pads::tests::voice_leading_keeps_common_tones ... ok
[INFO] [stdout] test engine::pads::tests::voice_leading_no_valid_target_does_not_corrupt_state ... ok
[INFO] [stdout] test engine::pads::tests::voice_leading_stepwise_for_related_chords ... ok
[INFO] [stdout] test engine::pads::tests::voice_leading_minimizes_motion ... ok
[INFO] [stdout] test engine::pads::tests::voicing_type_for_part ... ok
[INFO] [stdout] test engine::rhythm::tests::boom_chick_preset ... ok
[INFO] [stdout] test engine::pads::tests::voicing_type_serde_roundtrip ... ok
[INFO] [stdout] test engine::rhythm::tests::down_strum_staggers_low_to_high ... ok
[INFO] [stdout] test engine::rhythm::tests::different_seeds_produce_different_poly_patterns ... ok
[INFO] [stdout] test engine::rhythm::tests::driving_eighths_preset ... ok
[INFO] [stdout] test engine::rhythm::tests::folk_strum_preset ... ok
[INFO] [stdout] test engine::rhythm::tests::dynamics_scale_values ... ok
[INFO] [stdout] test engine::rhythm::tests::ghost_strum_short_duration ... ok
[INFO] [stdout] test engine::pads::tests::open_voicing_spans_more_than_octave ... ok
[INFO] [stdout] test engine::rhythm::tests::groove_template_serde_roundtrip ... ok
[INFO] [stdout] test engine::rhythm::tests::humanization_timing_within_bounds ... ok
[INFO] [stdout] test engine::rhythm::tests::humanization_velocity_scaled_by_dynamics ... ok
[INFO] [stdout] test engine::rhythm::tests::humanize_tick_zero_no_underflow ... ok
[INFO] [stdout] test engine::rhythm::tests::mono_bar_produces_one_event_per_hit ... ok
[INFO] [stdout] test engine::rhythm::tests::humanize_large_tick_no_overflow ... ok
[INFO] [stdout] test engine::rhythm::tests::humanize_params_per_role ... ok
[INFO] [stdout] test engine::rhythm::tests::mono_mode_serde_roundtrip ... ok
[INFO] [stdout] test engine::rhythm::tests::muted_strum_preset ... ok
[INFO] [stdout] test engine::rhythm::tests::poly_bar_produces_events_for_each_hit ... ok
[INFO] [stdout] test engine::rhythm::tests::same_seed_mono_determinism ... ok
[INFO] [stdout] test engine::composer::tests::composed_song_serde_roundtrip ... ok
[INFO] [stdout] test engine::rhythm::tests::swing_shifts_even_eighths ... ok
[INFO] [stdout] test engine::rhythm::tests::sixteenth_strum_preset ... ok
[INFO] [stdout] test engine::rhythm::tests::same_seed_produces_identical_poly_pattern ... ok
[INFO] [stdout] test engine::rhythm::tests::swing_zero_is_straight ... ok
[INFO] [stdout] test engine::rhythm::tests::up_strum_staggers_high_to_low ... ok
[INFO] [stdout] test engine::rhythm::tests::travis_pick_preset ... ok
[INFO] [stdout] test engine::rhythm::tests::voice_select_all ... ok
[INFO] [stdout] test engine::rhythm::tests::voice_select_bass ... ok
[INFO] [stdout] test engine::rhythm::tests::voice_select_upper ... ok
[INFO] [stdout] test engine::song::tests::cc_event_serde_roundtrip ... ok
[INFO] [stdout] test engine::rhythm::tests::voice_select_empty ... ok
[INFO] [stdout] test engine::song::tests::default_song_active_parts ... ok
[INFO] [stdout] test engine::song::tests::default_song_progressions ... ok
[INFO] [stdout] test engine::song::tests::default_song_scales ... ok
[INFO] [stdout] test engine::song::tests::default_song_structure ... ok
[INFO] [stdout] test engine::song::tests::default_song_total_bars ... ok
[INFO] [stdout] test engine::song::tests::default_song_has_16_tracks ... ok
[INFO] [stdout] test engine::song::tests::instrument_type_percussion ... ok
[INFO] [stdout] test engine::song::tests::instrument_type_midi_range ... ok
[INFO] [stdout] test engine::song::tests::default_song_defaults ... ok
[INFO] [stdout] test engine::song::tests::pattern_serde_roundtrip ... ok
[INFO] [stdout] test engine::song::tests::pattern_empty_length ... ok
[INFO] [stdout] test engine::song::tests::percussion_instruments_have_unique_notes ... ok
[INFO] [stdout] test engine::song::tests::song_part_display ... ok
[INFO] [stdout] test engine::song::tests::percussion_gm_drum_note_mapping ... ok
[INFO] [stdout] test engine::song::tests::song_part_from_str ... ok
[INFO] [stdout] test engine::song::tests::song_part_typical_bars ... ok
[INFO] [stdout] test engine::song::tests::song_part_serde_roundtrip ... ok
[INFO] [stdout] test engine::song::tests::note_event_serde_roundtrip ... ok
[INFO] [stdout] test engine::song::tests::strum_pattern_default_folk ... ok
[INFO] [stdout] test engine::song::tests::track_new ... ok
[INFO] [stdout] test engine::song::tests::track_role_serde_roundtrip ... ok
[INFO] [stdout] test engine::song::tests::track_serde_roundtrip ... ok
[INFO] [stdout] test engine::song::tests::voicing_serde_roundtrip ... ok
[INFO] [stdout] test engine::theory::tests::a_natural_minor_diatonic_chords ... ok
[INFO] [stdout] test engine::theory::tests::bb_major_scale_notes ... ok
[INFO] [stdout] test engine::theory::tests::c_major_scale_notes ... ok
[INFO] [stdout] test engine::song::tests::song_serde_roundtrip ... ok
[INFO] [stdout] test engine::theory::tests::chord_degree_index ... ok
[INFO] [stdout] test engine::theory::tests::chord_degree_serde_roundtrip ... ok
[INFO] [stdout] test engine::theory::tests::chord_notes_dominant7 ... ok
[INFO] [stdout] test engine::theory::tests::chord_notes_major ... ok
[INFO] [stdout] test engine::theory::tests::chord_notes_minor ... ok
[INFO] [stdout] test engine::theory::tests::chord_quality_intervals ... ok
[INFO] [stdout] test engine::theory::tests::g_minor_pentatonic_notes ... ok
[INFO] [stdout] test engine::theory::tests::c_major_diatonic_chords ... ok
[INFO] [stdout] test engine::theory::tests::g_natural_minor_scale_notes ... ok
[INFO] [stdout] test engine::theory::tests::interval_between_pitch_classes ... ok
[INFO] [stdout] test engine::theory::tests::interval_display ... ok
[INFO] [stdout] test engine::composer::tests::rhythm_guitar_has_events ... ok
[INFO] [stdout] test engine::theory::tests::interval_from_semitones ... ok
[INFO] [stdout] test engine::theory::tests::interval_semitones ... ok
[INFO] [stdout] test engine::theory::tests::interval_serde_roundtrip ... ok
[INFO] [stdout] test engine::theory::tests::pitch_class_from_midi ... ok
[INFO] [stdout] test engine::theory::tests::pitch_class_from_str ... ok
[INFO] [stdout] test engine::theory::tests::pitch_class_serde_roundtrip ... ok
[INFO] [stdout] test engine::theory::tests::pitch_class_to_semitone ... ok
[INFO] [stdout] test engine::theory::tests::pitch_class_display ... ok
[INFO] [stdout] test engine::theory::tests::scale_contains_member ... ok
[INFO] [stdout] test engine::theory::tests::scale_contains_respects_disabled_degrees ... ok
[INFO] [stdout] test engine::theory::tests::minor_pentatonic_derives_from_natural_minor ... ok
[INFO] [stdout] test engine::theory::tests::scale_degree_disabled_returns_none ... ok
[INFO] [stdout] test engine::theory::tests::pitch_class_transpose ... ok
[INFO] [stdout] test engine::theory::tests::pentatonic_degree ... ok
[INFO] [stdout] test engine::theory::tests::scale_degree_out_of_range ... ok
[INFO] [stdout] test engine::theory::tests::scale_with_disabled_degrees ... ok
[INFO] [stdout] test engine::theory::tests::scale_serde_roundtrip ... ok
[INFO] [stdout] test engine::theory::tests::semitone_distance_is_symmetric ... ok
[INFO] [stdout] test engine::theory::tests::scale_degree_returns_correct_pitch ... ok
[INFO] [stdout] test engine::theory::tests::semitone_distance_adjacent ... ok
[INFO] [stdout] test engine::theory::tests::semitone_distance_never_exceeds_six ... ok
[INFO] [stdout] test engine::theory::tests::semitone_distance_same_note_is_zero ... ok
[INFO] [stdout] test cli::commands::tests::compose_returns_populated_song ... ok
[INFO] [stdout] test engine::theory::tests::semitone_distance_tritone_is_six ... ok
[INFO] [stdout] test midi_export::tests::export_file_roundtrip ... ok
[INFO] [stdout] test midi_export::tests::export_empty_song_produces_valid_midi ... ok
[INFO] [stdout] test engine::theory::tests::semitone_distance_takes_shorter_path ... ok
[INFO] [stdout] test midi_export::tests::bpm_to_microseconds_conversion ... ok
[INFO] [stdout] test midi_export::tests::generate_filename_format ... ok
[INFO] [stdout] test midi_export::tests::midi_write_read_roundtrip ... ok
[INFO] [stdout] test midi_export::tests::export_roundtrip_cc_and_pitch_bend ... ok
[INFO] [stdout] test state::tests::current_snapshot_matches_index ... ok
[INFO] [stdout] test midi_export::tests::export_preserves_tempo ... ok
[INFO] [stdout] test state::tests::goto_snapshot_works ... ok
[INFO] [stdout] test state::tests::ipc_request_default_args ... ok
[INFO] [stdout] test engine::composer::tests::different_seeds_produce_different_compositions ... ok
[INFO] [stdout] test state::tests::goto_snapshot_out_of_bounds ... ok
[INFO] [stdout] test state::tests::ipc_response_error ... ok
[INFO] [stdout] test state::tests::ipc_response_success ... ok
[INFO] [stdout] test engine::composer::tests::pad_track_has_events ... ok
[INFO] [stdout] test state::tests::ipc_request_serde_roundtrip ... ok
[INFO] [stdout] test state::tests::ipc_response_serde_roundtrip ... ok
[INFO] [stdout] test state::tests::app_state_serde_roundtrip ... ok
[INFO] [stdout] test state::tests::multiple_undo_redo_cycle ... ok
[INFO] [stdout] test midi_export::tests::export_roundtrip_with_notes ... ok
[INFO] [stdout] test state::tests::ipc_response_success_empty ... ok
[INFO] [stdout] test engine::composer::tests::melody_track_has_events ... ok
[INFO] [stdout] test state::tests::new_state_defaults ... ok
[INFO] [stdout] test state::tests::new_state_has_initial_snapshot ... ok
[INFO] [stdout] test state::tests::redo_at_end_returns_false ... ok
[INFO] [stdout] test midi_export::tests::export_includes_track_names ... ok
[INFO] [stdout] test state::tests::ipc_socket_path_is_correct ... ok
[INFO] [stdout] test state::tests::redo_restores_next_snapshot ... ok
[INFO] [stdout] test state::tests::snapshot_preserves_seed ... ok
[INFO] [stdout] test state::tests::take_snapshot_after_undo_truncates_redo ... ok
[INFO] [stdout] test state::tests::snapshot_serde_roundtrip ... ok
[INFO] [stdout] test state::tests::take_snapshot_adds_to_history ... ok
[INFO] [stdout] test state::tests::undo_at_start_returns_false ... ok
[INFO] [stdout] test state::tests::shared_state_accessible_from_multiple_threads ... ok
[INFO] [stdout] test state::tests::undo_restores_previous_snapshot ... ok
[INFO] [stdout] test engine::composer::tests::inactive_tracks_have_no_patterns_for_part ... ok
[INFO] [stdout] test cli::commands::tests::compose_tracks_have_note_events ... ok
[INFO] [stdout] test cli::commands::tests::all_responses_are_valid_json ... ok
[INFO] [stdout] test cli::commands::tests::compose_is_deterministic ... ok
[INFO] [stdout] test cli::commands::tests::export_midi_deterministic ... ok
[INFO] [stdout] test engine::composer::tests::same_seed_produces_identical_composition ... ok
[INFO] [stdout] test cli::commands::tests::compose_different_seeds_differ ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 312 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_integration.rs (/opt/rustwide/target/debug/deps/cli_integration-c54b28ffd4656151)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test cli_export_midi_invalid_path_exits_nonzero ... ok
[INFO] [stdout] test cli_export_midi_creates_valid_file ... ok
[INFO] [stdout] test cli_compose_returns_valid_json_with_patterns ... ok
[INFO] [stdout] test cli_compose_is_deterministic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.68s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "687f48a4ba95f1d7db7357f8aee5e6bdd62a118ae49ecf99a7cff5b46520de41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "687f48a4ba95f1d7db7357f8aee5e6bdd62a118ae49ecf99a7cff5b46520de41", kill_on_drop: false }`
[INFO] [stdout] 687f48a4ba95f1d7db7357f8aee5e6bdd62a118ae49ecf99a7cff5b46520de41
